﻿package com.eve.eplus.common.view;

import android.content.Context;
import android.content.DialogInterface;
import android.view.View;

import com.eve.eplus.common.view.ComDialog;

/**
 * 对话框工具
 * @author Norsie
 * @create 12-11-29
 */
public class ComDialogTools {
    
    /**
     * 确认对话框
     * 
     * @param context
     *            上下文
     * @param title
     *            标题
     * @param posBtn
     *            确定按钮文字,null表示不显示
     * @param negBtn
     *            取消按钮文字,null表示不显示
     * @param msg
     *            提示信息
     * @param posListener
     *            确定按钮监听事件
     * @param negListener
     *            取消按钮监听事件
     */
    public static void showConfirmDialog(Context context, String title,
            String posBtn, String negBtn, String msg,
            DialogInterface.OnClickListener posListener,
            DialogInterface.OnClickListener negListener) {
        ComDialog.Builder mDialog = new ComDialog.Builder(
                context);
        mDialog.setTitle(title).setMessage(msg)
        .setPositiveButton(posBtn, posListener)
        .setNegativeButton(negBtn, negListener).create().show();
    }
    
    /**
     * 消息提示框,默认按钮:确定
     * 
     * @param context
     *            上下文
     * @param title
     *            标题
     * @param msg
     *            提示信息
     */
    public static void showMesageTipDialog(Context context, String title,
            String msg) {
        ComDialog.Builder mDialog = new ComDialog.Builder(
                context);
        mDialog.setTitle(title).setMessage(msg).setPositiveButton(" 确定 ", null)
        .create().show();
    }
    
    /**
     * 消息提示框
     * 
     * @param context
     *            上下文
     * @param title
     *            标题
     * @param posText
     *            确定按钮文字,为”null“时无此按钮。
     * @param msg
     *            提示信息
     */
    public static void showMesageTipDialog(Context context, String title,String posBtn,
            String msg) {
        ComDialog.Builder mDialog = new ComDialog.Builder(
                context);
        mDialog.setTitle(title).setMessage(msg).setPositiveButton(posBtn, null)
        .create().show();
    }

    /**
     * 可加入View的Dialog，默认按钮：确定，取消
     * 
     * @param context 上下文
     * @param title 标题
     * @param view view
     * @param doTaskListener 确认按钮监听事件
     */
    public static void showSetViewDialog(Context context, String title,
            View view, final ComTaskListener doTaskListener) {
        ComDialog.Builder mDialog = new ComDialog.Builder(
                context);
        mDialog.setTitle(title).setContentView(view)
        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                if (dialog != null) {
                    dialog.dismiss();
                }
            }
        })
        .setPositiveButton("确认", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                if (doTaskListener != null) {
                    doTaskListener.doTask("");
                }
            }
        }).create().show();
    }
    
    /**
     * 可加入View的Dialog
     * 
     * @param context 上下文
     * @param title 标题
     * @param posBtn 确定按钮文字,为”null“时无此按钮。
     * @param negBtn 取消按钮文字,为”null“时无此按钮。
     * @param view view
     * @param doTaskListener 确认按钮监听事件
     */
    public static void showSetViewDialog(Context context, String title,String posBtn,String negBtn,
            View view, final ComTaskListener doTaskListener) {
        ComDialog.Builder mDialog = new ComDialog.Builder(
                context);
        mDialog.setTitle(title).setContentView(view)
        .setNegativeButton(negBtn, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                if (dialog != null) {
                    dialog.dismiss();
                }
            }
        })
        .setPositiveButton(posBtn, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                if (doTaskListener != null) {
                    doTaskListener.doTask("");
                }
            }
        }).create().show();
    }
    
    /**
     * 可加入View的Dialog，两个按钮事件均可自定义。
     * 
     * @param context 上下文
     * @param title 标题
     * @param posBtn 确定按钮文字,为”null“时无此按钮。
     * @param negBtn 取消按钮文字,为”null“时无此按钮。
     * @param view view
     * @param posDoTaskListener 确认按钮监听事件
     * @param negDoTaskListener 取消按钮监听事件
     */
    public static void showSetViewDialog(Context context, String title,String posBtn,String negBtn,
            View view, final ComTaskListener posDoTaskListener,final ComTaskListener negDoTaskListener) {
        ComDialog.Builder mDialog = new ComDialog.Builder(
                context);
        mDialog.setTitle(title).setContentView(view)
        .setNegativeButton(negBtn, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                if (negDoTaskListener != null) {
                    negDoTaskListener.doTask("");
                }
            }
        })
        .setPositiveButton(posBtn, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                if (posDoTaskListener != null) {
                    posDoTaskListener.doTask("");
                }
            }
        }).create().show();
    }
    
    
    
    /**
     * 任务回调监听器
     * 
     * @author norsie
     * @created 12-12-18
     */
    public interface ComTaskListener {
        public void doTask(String action);
    }

    public static ComTaskListener doTaskListener = null;

    public static void setComTaskListener(ComTaskListener doTaskListener_param) {
        doTaskListener = doTaskListener_param;
    }

}
